date: 2023-12-07
Type: Cours
Projet: Blindcode
Cours: PHPRetour de Valeurs de Fonction avec Typage
En PHP, le typage des retours de fonction permet de spécifier le type de données attendu en tant que résultat de la fonction. Cela offre une clarté accrue sur le type de valeur qu'une fonction devrait renvoyer. Voici comment utiliser le retour de valeurs avec typage en PHP.
Pour spécifier le type de données que la fonction devrait renvoyer, utilisez le mot-clé : type suivi du type de données après la liste des paramètres de la fonction. Voici un exemple :
<?php
function additionner(int $a, int $b): int {
$somme = $a + $b;
return $somme;
}
// Appel de la fonction et stockage du résultat dans une variable
$resultat = additionner(5, 3);
// Affichage du résultat
echo "La somme est : $resultat";
?>
Dans cet exemple, la fonction additionner renvoie un entier, comme spécifié par : int.
Le résultat typé d'une fonction peut être utilisé de la même manière que dans le cas des retours non typés.
<?php
function multiplier(float $a, float $b): float {
$produit = $a * $b;
return $produit;
}
// Affichage direct du résultat typé
echo "Le produit est : " . multiplier(4.5, 2.5);
// Affectation du résultat typé à une variable
$produit_resultat = multiplier(2.1, 3.5);
// Utilisation du résultat typé dans une expression
$somme_produit = additionner($produit_resultat, 7);
?>
Dans cet exemple, la fonction multiplier renvoie un flottant, comme spécifié par : float, et le résultat typé est utilisé de différentes manières. Il y a tous types de retours, nous en verrons encore 2 ici en théorie, mais si vous voulez voir les types classiques, vous pouvez regarder cette ressource qui compile les différents return type ! Nous les rencontrerons tous ou presque dans les futures leçons.
PHP 7.1 et versions ultérieures prennent en charge les types de retour nullables. Vous pouvez spécifier que la fonction peut également renvoyer null. Voici un exemple :
<?php
function diviser(float $a, float $b): ?float {
if ($b != 0) {
return $a / $b;
} else {
return null;
}
}
// Appel de la fonction et stockage du résultat dans une variable
$resultat_division = diviser(8.0, 4.0);
// Vérification si le résultat est non nul avant utilisation
if ($resultat_division !== null) {
echo "Le résultat de la division est : $resultat_division";
} else {
echo "La division par zéro n'est pas autorisée.";
}
?>
Dans cet exemple, la fonction diviser renvoie un flottant ou null, comme spécifié par : ?float.
Pour indiquer que la fonction ne renvoie aucune valeur, spécifiez : void après la liste des paramètres de la fonction. Voici un exemple :
<?php
function afficherMessage(string $message): void {
echo $message;
}
// Appel de la fonction
afficherMessage("Bonjour, le message est affiché.");
// La fonction ne retourne aucune valeur à stocker
?>
Dans cet exemple, la fonction afficherMessage affiche le message passé en argument, mais elle ne renvoie aucune valeur (type void).
voidLe type void est souvent utilisé pour des fonctions qui effectuent des actions sans nécessiter de retour de valeur. Par exemple, une fonction d'enregistrement de données dans une base de données ou d'envoi de courriers électroniques peut être définie avec un type de retour void si son objectif principal est l'effet de l'action plutôt que la valeur renvoyée.
<?php
function enregistrerEnBaseDeDonnees(array $donnees): void {
// Logique d'enregistrement des données dans la base de données
}
function envoyerCourriel(string $destinataire, string $message): void {
// Logique d'envoi de courrier électronique
}
// Utilisation des fonctions sans récupération de valeurs de retour
enregistrerEnBaseDeDonnees(['nom' => 'Dupont', 'age' => 30]);
envoyerCourriel('john@example.com', 'Contenu du message...');
?>
Dans ces exemples, les fonctions accomplissent des actions mais ne renvoient aucune valeur (type void).
Le retour de valeurs de fonction avec typage en PHP permet de spécifier le type de données attendu en tant que résultat, améliorant ainsi la lisibilité du code et facilitant la détection d'erreurs potentielles.
créé le 2023-12-07 à 11:29